package main

import (
	"fmt"
	"time"
)

func main() {
	intCh := make(chan int, 1)
	go func() {
		time.Sleep(time.Second * 5)
		intCh <- 10
	}()
	// 再定义一个string类型的管道
	stringCh := make(chan string, 1)
	go func() {
		time.Sleep(time.Second * 2)
		stringCh <- "彪哥学golang"
	}()

	select { // 多路复用,随机选一个效率高的,stringCh休眠时间短,所以会打印stringCh
	case v := <-intCh:
		fmt.Println("intCh:", v)
	case v := <-stringCh:
		fmt.Println("stringCh:", v)
	default: // 加上default防止select阻塞,有阻塞直接执行default里面的了
		fmt.Println("防止select阻塞")
	}
}
